package com.example.weather.city_manager

import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
import com.example.weather.R

/**
 * 城市管理适配器，用于显示城市列表
 * @author Y7993
 */
class CityManagerAdapter(// 上下文
    var context: Context?, // 城市数据列表
    var mDatas: MutableList<String?>
) : BaseAdapter() {

    /**
     * 返回数据项数量
     */
    override fun getCount(): Int {
        return mDatas.size
    }

    /**
     * 返回指定位置的数据项
     */
    override fun getItem(i: Int): Any? {
        return mDatas[i]
    }

    /**
     * 返回数据项的ID
     */
override fun getItemId(i: Int): Long {
    return i.toLong()
}


    /**
     * 构建并返回列表项视图
     */
    @SuppressLint("InflateParams", "ViewHolder")
    override fun getView(i: Int, view: View?, viewGroup: ViewGroup?): View {
        var holder: ViewHolder?

        var convertView: View =
            LayoutInflater.from(context).inflate(R.layout.item_city_manager, null)
        holder = ViewHolder(convertView)
        convertView.tag = holder

        val bean = mDatas[i]
        // 设置城市名称
        holder.cityTv.text = bean
        // 返回构建好的视图
        return convertView
    }

    /**
     * ViewHolder类，用于缓存视图，提升性能
     */
    internal class ViewHolder(itemView: View) {
        // 城市名称
        var cityTv: TextView = itemView.findViewById<TextView>(R.id.item_city_tv_city)

    }
}